The Universal Serial Bus (USB) 1.0 specification was originally developed in the 1990s to provide a bus and interface(s) to standardize communication between computers and peripheral devices, such as keyboards, printers, cursor pointing devices, external drives, and the like. Since then, USB has progressed into versions 2.0 and 3.0 and has become ubiquitous in computers as well as portable devices, such as smartphones, tablet computers, and MP3 players.
In general, in USB communication, one device acts as a Host while another acts as a Device. The Host powers the bus, issues commands, and generally maintains control over the connection. The Device does not initiate any activity for control of the bus. For example, a personal computer acts as a Host to a USB “thumb” drive Device.
The On-the-Go Specification allows a single Host and single Device to swap roles. For example, some tablet computers may function in a Device role and operate as a mass storage device when coupled to a personal computer Host, but may function as a Host when coupled to a peripheral device such as a keyboard.
USB hubs expand a single USB port into several so that more devices can be connected. A personal computer or automotive entertainment system, for example, may include multiple external USB ports but have an internal hub, rather than dedicated USB controllers for each port. As can be appreciated, difficulties can arise, however, in employing a USB hub with On-the-Go devices.
However, the Flexconnect-enabled hubs (USB 2.0 and USB 3.0 hubs) produced by the Assignee of the present application are unique in the industry in that they can swap the upstream (Host) side port with one of the downstream (Device) side ports. In effect, a dual role (Host/Device) can take over the hub from the downstream port. Details on such a Flexconnect enabled hub may be found in U.S. Pat. No. 7,480,753, which is hereby incorporated by reference in its entirety as if fully set forth herein.
Normally, a USB host provides a signal called VBUS to tell the Hub it is present. VBUS is also a power signal that can be used to power the Hub. If a dual role device like an iPad® is plugged into the Device side port, it always wants to receive power, even if it is the Host. Since the Device, now acting as Host, is not providing VBUS, there is no way for the Hub to know if the USB 2.0 Host has disconnected. Lack of activity is not a sufficient indicator: when there is no activity the Hub simply goes into the suspend state to save power.
That is, when the Hub is providing VBUS to the Host, there is no way to tell if the Host has entered suspend or if it is disconnected. Normal USB operation expects the presence of VBUS to go away when the Host has been disconnected. With VBUS always present, the Hub must be able to decipher between a USB Suspend case and a Host Disconnect case
Accordingly, there is a need for a method to detect a disconnection of a Host in a dual role USB port of a USB Hub.